package 抽象语法树类;

import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.Token;
import 符号表和作用域.作用域;
import 符号表和作用域.符号;

public class 抽象语法树 {
    public Token start, stop;
    public ParserRuleContext ctx;
    public 作用域 作用域;
    
    public 抽象语法树 父节点;

    public 抽象语法树 记录(ParserRuleContext ctx) {
        this.ctx = ctx;
        start = ctx.getStart();
        stop = ctx.getStop();
        return this;
    }

    public void 绑定(作用域 作用域){
        this.作用域 = 作用域;
        
        if (作用域 instanceof 符号 符号) {
            符号.节点 = this;
        }
    }
    
    @Override
    public String toString() {
        return ctx.getText();
    }
}
